// pages/index/detailsSW/index.js
import Dialog from '../../../../miniprogram_npm/@vant/weapp/dialog/dialog';
import Toast from '../../../../miniprogram_npm/@vant/weapp/toast/toast';
import {
	clearAlertRefresh
} from '../../../../utils/hooks';

const $api = require('../../../../request/api').API;
const app = getApp();
Page({
	/**
	 * 页面的初始数据
	 */
	data: {
		useId: '', // 使用人的d
		userName: '', // 使用人的名称
		actualUserId: '',
		flowEndDate: '',
		activeDate: '',
		id: '',
		// 住户id
		houseId: '',
		// 呼叫器id
		beeperId: '',
		// 设备id
		equipId: '',
		equipMac: '',
		//--------------------------------------------------------------
		wifiName: '',
		wifiPwd: '',
		linkName: '',
		phone: '',
		address: '',
		provinceName: '',
		cityName: '',
		areaName: '',
		streetName: '',
		villageName: '',
		callingName: '',
		callingStatus: 0,
		callingErrorStatus: 0,
		equipNickName: '',
		installArea: '',
		equipCode: '',
		money: 0,
		showModifyUser: false,
		userList: [],
		// 标签列表
		tagList: [{
			beeperTagId: '1',
			tagName: '帅气'
		}],
		createDate: '',
		//-----------------------------------------------------------------
		// 设置wifi弹框
		showWifiOverlay: false,
		// 设置新增标签弹框
		showTagOverlay: false,
		// 点击标签分类显示
		selectClassShow: false,
		selectClassName: '点击选择分类',
		selectClassId: '',
		tagClass: [],
		// 是否为主用户
		mainFlag: 0,
		// 修改昵称或者安装区域弹框
		showUpdateData: false,
		showType: 1, //1代表昵称修改 2代表安装区域修改
		tempData: '', //临时数据，用来修改昵称和安装区域
		showRecord: false, // 过往记录弹窗控制
		active: 0, // 过往记录tab
		activeList: ['体温', '心率', '血氧', '血压'],
		tabsIcon: [
			'https://pic.kanglailab.com/common/temperature.png',
			'https://pic.kanglailab.com/common/bloodPressure.png',
			'https://pic.kanglailab.com/common/equip/oxygen.png',
			'https://pic.kanglailab.com/common/heart_rate.png'
		], // 选项卡图标
		loadingRecord: false,
		historicalParams: {
			// 过往记录列表参数
			pageNo: 1,
			pageSize: 10,
			type: 1
		},
		latestDetectionData: {
			// 最新检测数据
			heart: '-',
			oxygen: '-',
			pressureMax: '-',
			pressureMin: '-',
			temp: '-'
		},
		pastRecordedData: [], // 过往记录数据
		pastRecordedTotal: 1,
		localeId: '',
		startDetectionShow: false,
		timeDetectionShow: false,
		detectionList: [{
				type: 1,
				name: '体温',
				flag: false,
				time: ''
			},
			{
				type: 2,
				name: '心率',
				flag: false,
				time: ''
			},
			{
				type: 3,
				name: '血氧',
				flag: false,
				time: ''
			},
			{
				type: 4,
				name: '血压',
				flag: false,
				time: ''
			},
		],
		timeColumns: [{
				name: "无"
			},
			{
				name: 0.5
			},
			{
				name: 1
			},
			{
				name: 2
			},
			{
				name: 3
			},
			{
				name: 4
			},
			{
				name: 5
			},
			{
				name: 6
			},
		],
		timeIndex: 0,
		equipPhone:''
	},

	/**
	 * 生命周期函数--监听页面加载
	 */
	onLoad(options) {
		let id = options.beeperId;
		if (id != undefined) {
			this.setData({
				id: id,
				localeId: options.localeId
			});
		}
	},

	// 请求数据
	getData(id) {
		let params = {
			id: this.data.id
		};
		let {
			userList
		} = this.data;
		$api
			.getBeeperSW(params)
			.then(res => {
				if (res.data.status == 0) {
					var data = res.data.data;
					this.setData({
							houseId: data.houseId,
							beeperId: data.beeperId,
							createDate: data.createDate,
							equipPhone:data.equipPhone,
							equipId: data.equipId,
							linkName: data.linkName,
							phone: data.phone,
							address: data.address == '待补充' ? '' : data.address,
							provinceName: data.provinceName,
							cityName: data.cityName,
							areaName: data.areaName,
							streetName: data.streetName,
							villageName: data.villageName,
							callingName: data.equipName,
							callingStatus: data.equipState,
							callingErrorStatus: data.errorState,
							money: data.balance,
							tagList: data.tags,
							mainFlag: data.mainFlag,
							equipNickName: data.equipNickName,
							installArea: data.installArea,
							equipCode: data.equipCode,
							equipMac: data.equipMac,
							activeDate: data.activeDate,
							flowEndDate: data.flowEndDate == null ? '' : data.flowEndDate,
							actualUserId: data.actualUserId,
							userName: userList.find(item => item.id == data.actualUserId)?.name
						},
						() => {}
					);
					if (this.data.address == '') {
						this.setData({
							showWifiOverlay: true
						});
					}
				}
			})
			.catch(err => {
				console.log(err);
			});
	},
	// 打开wifi设置弹框
	openSetWifi() {
		this.setData({
			showWifiOverlay: true,
			linkName: this.data.contact,
			phone: this.data.phone
		});
	},
	// 关闭wifi设置弹框
	closeSetWifi() {
		if (this.data.address == '') {
			// 不填信息退出，直接解绑并回到首页
			setTimeout(() => {
				wx.switchTab({
					url: '/pages/equipment/index'
				});
			}, 500);
		} else {
			this.setData({
				showWifiOverlay: false
			});
		}
	},

	onSelectClass(event) {
		console.log(event.detail);
		this.setData({
			selectClassName: event.detail.name,
			selectClassId: event.detail.id
		});
	},
	// 设置wifi
	setWIFI() {
		let params = {
			houseId: this.data.houseId,
			linkName: this.data.linkName,
			phone: this.data.phone,
			address: this.data.address,
			beeperId: this.data.beeperId
		};
		if (params.linkName == '') {
			Toast.fail('联系人不能为空');
			return;
		}
		if (params.phone == '') {
			Toast.fail('联系电话不能为空');
			return;
		}
		if (params.address == '') {
			Toast.fail('门牌号不能为空');
			return;
		}
		$api
			.setHouseWifi(params)
			.then(res => {
				console.log('设置wifi回调', res);
				if (res.data.status == 0) {
					wx.showToast({
						title: '设置地址信息成功'
					});
					this.setData({
						showWifiOverlay: false
					});
					this.getData(this.data.id);
				}
			})
			.catch(err => {
				console.log(err);
			});
	},



	/**
	 * 生命周期函数--监听页面显示
	 */
	async onShow() {
		await this.getUserList();
		this.getData(this.data.id);
	},

	// 输入框绑定值
	wifiNameInput(e) {
		let value = e.detail.value;
		this.setData({
			wifiName: value
		});
	},
	wifiPwdInput(e) {
		let value = e.detail.value;
		this.setData({
			wifiPwd: value
		});
	},


	// 打开修改昵称弹框
	openUpdateData(e) {
		let type = e.currentTarget.dataset.type;
		this.setData({
			showUpdateData: true,
			showType: type,
			tempData: type == 1 ? this.data.equipNickName : this.data.installArea
		});
	},
	// 关闭修改昵称弹框
	closeUpdateData() {
		this.setData({
			showUpdateData: false
		});
	},
	// 输入绑定
	dataInput(e) {
		let value = e.detail.value;
		this.setData({
			tempData: value
		});
	},
	// 修改昵称
	UpdateData() {
		if (!this.data.tempData && this.data.showType == 1) {
			Toast('请输入昵称');
			return;
		} else if (!this.data.tempData && this.data.showType == 2) {
			Toast('请输入安装区域');
			return;
		}
		let params = {
			id: this.data.equipId,
			name: this.data.tempData,
			state: this.data.showType
		};
		$api
			.UpdataName(params)
			.then(res => {
				if (res.data.status == 0) {
					if (this.data.showType == 1) {
						wx.showToast({
							title: '设置昵称成功'
						});
					} else {
						wx.showToast({
							title: '设置成功'
						});
					}

					this.setData({
						showUpdateData: false
					});
					this.getData(this.data.id);
				}
			})
			.catch(err => {
				console.log(err);
			});
	},



	/**
	 * 请求过往数据列表
	 */
	FetchLoadHistoricalData() {
		const params = {
			equipId: this.data.equipId,
			...this.data.historicalParams
		};
		$api
			.EquipLogPage(params)
			.then(res => {
				this.setData({
					loadingRecord: false
				});
				const {
					data
				} = res.data;
				this.setData({
					pastRecordedTotal: data.totalPage,
					pastRecordedData: this.data.pastRecordedData.concat(
						data.list.map(i => {
							if (params.type === 1) {
								return {
									...i,
									value: i.temp + '℃'
								};
							}
							if (params.type === 2) {
								return {
									...i,
									value: i.heart + 'bpm'
								};
							}
							if (params.type === 3) {
								return {
									...i,
									value: i.oxygen + 'spo2'
								};
							}
							if (params.type === 4) {
								return {
									...i,
									value: `${i.pressureMin}mmHg - ${i.pressureMax}mmHg`
								};
							}
						})
					)
				});
			})
			.catch(() => {
				this.setData({
					loadingRecord: false
				});
			});
	},

	/**
	 * 监听记录划到底部，加载数据
	 */
	handleHistoricalScrollToLower() {
		// 如果正在加载数据或已经到达最后一页，则不再请求
		if (this.data.pageNo === this.data.pastRecordedTotal) {
			return;
		}
		this.setData({
				historicalParams: {
					...this.data.historicalParams,
					pageNo: this.data.historicalParams.pageNo + 1
				}
			},
			() => {
				this.FetchLoadHistoricalData();
			}
		);
	},
	// 获取产所下的用户
	async getUserList() {
		let res = await $api.listUserCustomer({
			localeId: this.data.localeId
		});
		this.setData({
			userList: res.data.data || []
		});
	},
	// 显示用户弹框
	async showModifyUserPopup() {
		this.setData({
			showModifyUser: true
		});
	},
	// 关闭用户选择弹框
	closeMoidfyUserPopup() {
		this.setData({
			showModifyUser: false
		});
	},
	// 确定使用人
	async confirmModifyUser(e) {
		const {
			id,
			name
		} = e.detail.value;
		const params = {
			deviceId: this.data.equipId,
			userId: id
		};
		await $api.updateSugarUser(params);
		Toast.success('修改成功');
		this.setData({
			showModifyUser: false,
			actualUserId: id,
			userName: name
		});
	}
});